package com.xuetang.mapper;

import com.xuetang.entity.CommunityComment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 社区评论Mapper接口
 */
@Mapper
public interface CommunityCommentMapper {

    /**
     * 根据帖子ID查询评论列表
     * 
     * @param postId 帖子ID
     * @return 评论列表
     */
    List<CommunityComment> listByPostId(@Param("postId") Long postId);

    /**
     * 插入评论
     * 
     * @param comment 评论信息
     * @return 影响行数
     */
    int insert(CommunityComment comment);

    /**
     * 更新评论
     * 
     * @param comment 评论信息
     * @return 影响行数
     */
    int update(CommunityComment comment);

    /**
     * 更新评论点赞数
     * 
     * @param id        评论ID
     * @param increment 增量，可为正可为负
     * @return 影响行数
     */
    int updateLikes(@Param("id") Long id, @Param("increment") int increment);

    /**
     * 删除评论
     * 
     * @param id 评论ID
     * @return 影响行数
     */
    int delete(@Param("id") Long id);

    /**
     * 根据帖子ID删除所有评论
     * 
     * @param postId 帖子ID
     * @return 影响行数
     */
    int deleteByPostId(@Param("postId") Long postId);

    /**
     * 根据ID查询评论
     * 
     * @param id 评论ID
     * @return 评论信息
     */
    CommunityComment getById(@Param("id") Long id);

    /**
     * 查询最近的评论列表（用于后台管理系统）
     * 
     * @param limit 条数
     * @return 评论列表
     */
    List<CommunityComment> listRecent(@Param("limit") int limit);
}